function fnAgregarFilaArrayJSON(arrayJson,estructuraJson){        
    var nuevaFilaJSON = null;
    nuevaFilaJSON = $.extend(nuevaFilaJSON, estructuraJson);
    arrayJson.push(nuevaFilaJSON);
}

function fnCambiarInput(div) {    
    var value = $(div).text();
    $(div).text("");
    $(div).attr("style","display:none");

    var td = $(div).parent('td').get(0);
    var tr = $(td).parent('tr').get(0); 
    var estructura = fnObtenerEstructura(tr.className,div.className);    
    var input = '<'+estructura.element+' type="'+estructura.type+'" id="'+estructura.name+'" name="'+estructura.name+'" size="'+estructura.size+'" maxLength="'+estructura.maxLength+'" '+
    				'style="'+estructura.style+'" class="'+estructura.className+'" value="'+$.trim(value)+'" tabindex="'+div.tabIndex+'" onblur="'+estructura.onblur+'" '+
    				'onchange="'+estructura.onchange+'" onkeyup="'+estructura.onkeyup+'" onkeypress="'+estructura.onkeypress+'" ></'+estructura.element+'>';

    $(td).append(input);    
    $('#'+estructura.name).focus();
    $('#'+estructura.name).select();
}

function fnCambiarInputDiv(input) {
	var clase = $(input).attr("class");
	var td = $(input).parent('td');
    var div = $(td).find('div').eq(0);
    $(div).text(input.value);
    div.tabIndex = input.tabIndex;
    $(input).remove();   
    $(div).removeAttr("style");
}

function fnRedondeoNumeroDecimal(input,numDecimales) {
	var tr = $(input).parent('td').parent('tr');
    var fila = $(tr).index();
    var idTabla = $(tr).parent('tbody').parent('table').attr('id');
    var arrayJSON = fnObtenerArrayJSON(idTabla);
    
    if(fnCompletaDecimal(input,numDecimales)){
        var nombreCampo = input.name;
        var objJSON = arrayJSON[fila];
        
        var valorInicialJSON = objJSON[nombreCampo];
        var valorInicialInput = input.value;
        var valorInicial = (valorInicialJSON!="")?parseFloat(valorInicialJSON):0;
        var valorInput = (valorInicialInput!="")?parseFloat(valorInicialInput):0;
        
        if(valorInicial != valorInput  || 
            (valorInicialInput == "" && valorInicialJSON!="") ||
            (valorInicialInput !="" && valorInicialJSON == "")){
        	fnEscribirValor(input);	
        }
    }
}